import os
from celery import Celery

# 创建一个名为 backend 的Celery应用实例，用于处理异步任务
# 设置Django设置模块路径为 backend.settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
app = Celery('backend')

# 从Django配置中加载Celery相关配置（以 CELERY_ 为前缀的设置）
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

# Windows 兼容性设置（特别重要）
if os.name == 'nt':
    app.conf.update(
        task_serializer='json',  # 设置任务序列化格式为JSON
        accept_content=['json'],  # 只接受JSON格式的内容，忽略其他格式，这是为了确保Windows环境下的稳定性
        result_serializer='json',  # 设置结果序列化格式为JSON
        timezone='Asia/Shanghai', # 设置时区为 Asia/Shanghai ，适合中国
        enable_utc=True,  # 启用UTC时间，这是为了确保跨时区部署的一致性
    )
    # 强制使用单线程执行模式（ worker_pool = 'solo' ），这是Windows环境下运行Celery的必要配置
    app.conf.worker_pool = 'solo'